package rmi;

import java.rmi.Remote;
import java.rmi.RemoteException;
import java.sql.SQLException;
import java.util.Set;
import modelo.*;

public interface IGestionLibro extends Remote {
	/**
	 * inserta un objeto Libro
	 * @param libro
	 */
	void addLibro(Libro libro) throws RemoteException, SQLException;
	
	/**
	 * elimina un objeto Libro
	 * @param libro
	 */
	void delLibro(Libro libro) throws RemoteException, SQLException;
	
	/**
	 * recupera un objeto Libro por clave primaria
	 * @param libro
	 */
	Libro getLibro(Libro libro) throws RemoteException, SQLException;
	
	/**
	 * recupera todos los libros
	 */
	Set<Libro> getLibros() throws RemoteException, SQLException;
	
	/**
	 * inserta el o los autores del libro
	 * @param libro
	 */
	void addAutores(Libro libro) throws RemoteException, SQLException;
	
	/**
	 * elimina el o los autores del Libro
	 * @param libro
	 */
	void delAutor(Libro libro) throws RemoteException, SQLException;
}
